package secondStage.part6.方法引用类.引用类的实例方法;

/**
 * @ClassName: [MyStringDemo]
 * @Description:
 * @Author: [黄劲松]
 * @CreateDate: [2021-04-14]
 * @Version: [v1.0]
 */
/*
1.6引用类的实例方法
引用类的实例方法，实就是用类中的成员方法
格式:类名::成员方法
●范例: String::substring
    String类中的方法: public String substring(int beginIndex,int endIndex)
    从beginIndex开始到endIndex结束，截取字符串。返回一个子串，子串的长度为endIndex beginIndex
练习
1:定义一个接口(MyString)，里面定义一-个抽象方法:
String mySubString(String s,int x,int y);
2:定义一个测试类(MyStringDemo),在测试类中提供两个方法
一个方法是: useMyString(MyString my)
-个方法是主方法，在主方法中调用useMyString方法
 */
public class MyStringDemo {
    public static void main(String[] args) {
        /*useMyString((String s,int x,int y)->{
            return s.substring(x,y);
        });*/
        useMyString((s,x,y)->s.substring(x,y));

        System.out.println("引用类的实例方法");
        useMyString((String::substring));
        //L ambda表达式被类的实例方法替代的时候
        //第一个参数作为调用者
        //后面的参数全部传递给该方法作为参数
    }
    private static void useMyString(MyString my){
        String s = my.mySubString("HelloWorld",2,5);
        System.out.println(s);
    }
}
